Comments (7)
There are options.
At a high level, I think the one that would be most natural for everyone, since they already use it without even realizing, is sticking them into a nuget package of their own and just reference the package.
Whether that package is local or actually published on a nuget repo is unimportant, as far as visual studio is concerned.
If this were a corporate team where everyone were guaranteed to have at least a similar baseline environment, I'd typically publish to a local shared nuget repo. Since that's not what this is, one option is to "publish" the package to a directory in the repo for that "shared" nuget repo.
Then it'll just be pulled in as part of the normal restore step.
Or the same thing can be done, but not nuget-flavored, and just stick the assemblies themselves in a central place to be referenced. The nuget way has the advantage of being more adaptable to different CPU targets, though.
from terminal.gui.
Oh. Forgot to mention the second option I meant to mention..
There's a visual studio extension to address this shortcoming that basically just hacks it by generating new names for the assemblies each time, so they can be loaded "dynamically."
It's an absolute kludge for sure, but it does seem to be a viable workaround.
from terminal.gui.
As for the first option (nuget packages or other pre-deployment that takes the project out of the solution), we could even just put them in their own repo under the org, and either publish them to nuget.org or as releases right here on github to be pulled in via nuget or any other mechanism.
Basically, as long as the analyzer project is not in the same solution, the pain goes away. I had actually originally written it in a separate solution, but was trying to avoid anything that involved deploying anything, since I couldn't do that to test it out.
from terminal.gui.
And, with how the newer ones are intended to be designed in a more target-agnostic fashion, I could even just publish them on nuget myself as not specifically bound to or dependent on Terminal.Gui. 🤷♂️
from terminal.gui.
My inclination (without me publishing them separately, anyway) is to do it via a bit of a hybrid approach, doing all of the following:
- Analyzer project not in Terminal.sln
- Most recent compiled assembly included as a fallback in source control directly.
- Fallback version compiled as generically and compatibly as possible (so, AnyCPU and anything potentially platform or runtime specific turned off)
- Analyzer project outputs to a gitignored path, and Terminal.Gui.csproj just conditionally references that or, if it does not exist, the fallback assembly.
This is a quickly-doable change to the process that will remove the pain and make an alternate/more formal means of distributing and referencing any custom analyzers a much less pressing need (but still something I'd suggest is a good idea before tagging TG as beta).
from terminal.gui.
That would be temporary only1, btw, until a long-term solution is implemented. Not great practice to keep binaries in source control if you can help it.
Footnotes
-
And not temporary as in "the most permanent solution is a temporary solution" either. ↩
from terminal.gui.
@dodexahedron I just setup my new ARM-based Surface Laptop 7. Excited to get working on it.
Only to find the ./Scripts
report:
``The current processor architecture is: MSIL ... The module 'xxx'reqjuires the following architecture: Amd64`
For now I removed the settings from the psd1 files that required AMD64.
I'd appreciate it if you made it a priority to fix all this stuff. It really negatively impacts my productivity for very little benefit.
from terminal.gui.
Related Issues (20)
- Change default `Appliation.QuitKey` to `Esc` from `Ctrl-Q` HOT 6
- v1 NetDriver throws System.InvalidOperationException when a key is pressed.
- NetDriver is consuming too much CPU resources in ReadConsoleKeyInfo. HOT 12
- DimAuto equality HOT 3
- Slider<> strange behaviour of Text property HOT 3
- v2: Button alignment in MessageBox is no longer centered HOT 3
- Allow to set Contents to dirty to just refresh the screen. HOT 2
- Terminal.Gui 1.17.0 Throws System Exception in Application.Run(dialog) HOT 17
- v1 CursesDriver isn't updating the buffer on the UpdateOffScreen method.
- How to "hide" views from layout? HOT 12
- Application.Run<T> is broken by not calling Init before initializing T.
- Add an example for CommunityToolkit.MVVM
- V2: TextField numeric input not working on non-Windows platforms HOT 5
- Checking if clipboard is available on windows HOT 6
- Disable borders on a MenuItem HOT 4
- v2 crashes on run with missing dependency JetBrains.Annotations HOT 9
- When adding more than one Window + TextView together with a MenuBar, the displayed text changes to the text of the first added Window HOT 4
- Create custom commands/key bindings HOT 3
- Mouse is broken in v2 HOT 2
- v2: Big performance impact on ListView/ComboBox's that contain a lot of items HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from terminal.gui.