在使用 YAML 文件格式在 Azure DevOps 上执行 CI 时,我试图读取我的 csproj 文件以提取有关版本的信息以创建将遵循 csproj 版本的 NuGet 包。
我NuGetCommand@2用于包装(因为versioningScheme: byPrereleaseNumber)
是否有内置任务或方法可以从 csproj 文件中提取此信息作为正则表达式并将它们传递给NuGetCommand@2?
我知道这不是一个编程问题,但它是一个编程工具问题.
在Visual Studio 2008 Team Edition(带有.NET 3.5 SP1的9.0版)中,当我将引用从一个csproj复制并粘贴到另一个csproj时(使用"解决方案资源管理器"视图中的上下文菜单),我收到以下错误:
错误HRESULT E_FAIL已从调用COM组件返回
这刚刚开始在我的机器上发生.我只能找到关于它的这篇文章,它不包含任何解决方案.
有任何想法吗?
我有VS 2008和csproj项目(C#Library).
在项目的属性中,具有程序集名称和默认名称空间.注意:每个类都有一个名称空间.
是否有可能在运行时获取默认命名空间的值?
我的目标是使用资源,我需要默认命名空间的值:
Assembly assembly = Assembly.GetExecutingAssembly();
//foreach (string resourceName in assembly.GetManifestResourceNames()){}
Stream syntaxModeStream = assembly.GetManifestResourceStream(pathToResources
+ ".SyntaxModes.xml");
Run Code Online (Sandbox Code Playgroud)
更新:
彼得说我做不到.默认命名空间不存储在程序集中
var resource = assembly.GetManifestResourceNames().Single(p => p.EndsWith(".SyntaxModes.Xml"))
Run Code Online (Sandbox Code Playgroud)
存储的默认命名空间在哪里?
我只能使用Addins Visual Studio(DTE对象)阅读?
作为我们开发生命周期的一部分,我们在项目中针对C#源运行了许多过程.
这些进程由GUI驱动,该GUI当前读取*.csproj文件以查找项目中使用的源文件.这很好用.
我们现在有了一个新的要求,即提供一些需要调用Web服务的验证过程.需要为Web服务提供一些特定于项目的凭据.理想情况下,我们可以在*.csproj文件中输入和存储这些凭据,但我没有看到扩展它的方法 - 是吗?
我们真的不想引入新的配置.如果我们可以帮助它,只为这些设置提供文件.是否可以存储这样的信息是*.csproj文件,如果没有其他地方可以放置它.
谢谢
在Visual Studio 2012和TFS中,如何在未将"删除csproj文件"添加到挂起的更改列表的情况下从解决方案中删除项目.我只想删除此解决方案中的引用,但该项目应该仍然存在,因为它在其他解决方案中使用.如果我只是从解决方案中删除它然后提交更改,那么它将删除csproj文件!
在没有TFS删除csproj文件的情况下从解决方案中删除项目的正确方法是什么?
我正在尝试在.NET核心csproj应用程序中使用PhantomJS NuGet包.但我认为使用PackageReferenceNuGet的新语法是不可能的.
当我像这样引用PhantomJS包时:
<PackageReference Include="PhantomJS" Version="2.1.1">
<IncludeAssets>all</IncludeAssets>
</PackageReference>
Run Code Online (Sandbox Code Playgroud)
我跑的时候什么也没做dotnet build.
我希望它将PhantomJS包中的文件复制到输出目录(或项目中的任何位置),这样我就可以使用PhantomJS包提供的二进制文件.
有没有其他方法将PhantomJS NuGet包的内容复制到MSBuild的输出目录?
我正在使用.NET Core构建跨平台类库.根据为使用.csproj文件构建C#.NET Core项目的操作系统,我需要将本机库复制到项目的输出目录.例如,对于OS XI想要复制.dylib文件,对于Windows我要复制.DLL文件,对于Linux我要复制.so文件.
如何使用.csproj ItemGroup中的Condition子句执行此操作?
<ItemGroup>
<Content Include="libNative.dylib" Condition=" '$(Configuration)|$(Platform)' == 'Debug|OSX' ">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
$(Platform)似乎不起作用.我可以使用不同的变量吗?
使用 SDK 样式的 csproj。
设想:
项目:
<PackageReference Include="MyNamespace.Package" Version="3.5.4-*" />
<PackageReference Include="MyNamespace.Other" Version="3.5.3" />
Run Code Online (Sandbox Code Playgroud)
安装:
MyNamespace.Package 3.5.4-pre.1
MyNamespace.Other 3.5.3
Run Code Online (Sandbox Code Playgroud)
在 NuGet 存储库中:
MyNamespace.Package 3.5.4-pre.1
MyNamespace.Package 3.5.4-pre.2
MyNamespace.Other 3.5.3
MyNamespace.Other 3.5.4
MyNamespace.Other 3.6.0
Run Code Online (Sandbox Code Playgroud)
我不希望 NuGet 修改任何PackageReference条目。我确实希望 NuGet 安装MyNamespace.Package满足通配符的最新版本,此处为 3.5.4-pre.2.
有没有任何内置的方法可以实现这一目标?
在 Visual Studio 中,您可以转到项目的属性 -> 构建 ->“将警告视为错误”,并提供以逗号分隔的警告列表,以在构建时将其视为错误。
这会导致以下行被添加到.csproj文件的构建配置中:<WarningsAsErrors>[list of warnings]</WarningsAsErrors>
这样做的问题是,当您拥有包含数十个项目的大型解决方案时,您必须手动或通过脚本为所有项目设置此设置,并且如果您进行任何更改,则必须对所有项目进行更改。
有没有什么方法可以在解决方案级别而不是在每个项目的基础上进行设置?
在 csproj 文件中设置为“true”时,“GenerateBindingRedirectsOutputType”选项有什么作用?