标签: csproj

部分.csproj文件

是否可以将.csproj中的信息拆分为多个文件?有点像该partial class功能的项目版本.

c# csproj

15
推荐指数
2
解决办法
4643
查看次数

如何在Visual Studio 2017中使用BeforeBuild和AfterBuild目标?

升级到csproj以使用Visual Studio 2017和Microsoft.NET.Sdk后,我的"BeforeBuild"和"AfterBuild"目标不再运行.我的文件看起来像这样:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>

  <!-- my targets that don't run -->
  <Target Name="BeforeBuild">
      <Message Text="Should run before build" Importance="High" />
  </Target>

  <Target Name="AfterBuild">
      <Message Text="Should run after build" Importance="High" />
  </Target>

</Project>
Run Code Online (Sandbox Code Playgroud)

.net msbuild csproj .net-core visual-studio-2017

15
推荐指数
3
解决办法
4143
查看次数

单元测试在构建服务器上失败,无法加载类型“Microsoft.VisualStudio.TestTools.UnitTesting.ClassCleanupBehavior”

我得到的程序集可以在我的 PC 上正常构建和进行单元测试,但无法在构建 PC 上进行测试。它已经失败了大约一个月。我很可能做错了什么。这是我从构建服务器得到的响应。

16:29:38     Project "xyz.Utilities.UnitTests.csproj": VSTest
16:29:40     Test run for C:\Bin\Release\net5.0-windows\xyz.Utilities.UnitTests.dll (.NETCoreApp,Version=v5.0)
16:29:40     Microsoft (R) Test Execution Command Line Tool Version 16.11.0
16:29:40     Copyright (c) Microsoft Corporation.  All rights reserved.
16:29:40     
16:29:40     Starting test execution, please wait...
16:29:40     A total of 1 test files matched the specified pattern.
16:29:41     An exception occurred while invoking executor 'executor://mstestadapter/v2': Could not load type 'Microsoft.VisualStudio.TestTools.UnitTesting.ClassCleanupBehavior' from assembly 'Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

16:29:41     Stack trace:
16:29:41        at Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor.RunTests(IEnumerable`1 sources, IRunContext runContext, IFrameworkHandle …
Run Code Online (Sandbox Code Playgroud)

unit-testing csproj build-error visual-studio

15
推荐指数
2
解决办法
1万
查看次数

基于配置的条件内容

我已经多次尝试使用类似的技术作为条件内容的"条件引用".

Visual Studio项目文件中的内容条目,例如"web.config",我希望在发布网站时包含这些条目.

我尝试了一些像......

<Choose>

    <When Condition="$(Configuration) != 'Release'">
        <ItemGroup>
            <Content Include="web.config">
                <SubType>Designer</SubType>
                <CopyToOutputDirectory>Always</CopyToOutputDirectory>
                 </Content>
        </ItemGroup>
    </When>
    <Otherwise>
        <ItemGroup>
        </ItemGroup>
    </Otherwise>

</Choose>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有任何想法吗?或者你以前遇到过这个并解决了吗?

msbuild csproj

14
推荐指数
1
解决办法
7425
查看次数

为什么我的.csproj文件在git rebase之后搞砸了?

在使用GIT进行源代码控制的.NET C#项目中,我在重新定位后不断收到格式错误的csproj文件以获取最近提交的代码.这是我的过程:

  1. 提交我的代码
  2. 构建并运行测试
  3. 重新定义为"最新"
  4. 诅咒天堂,因为csproj文件搞砸了...再次

这是rebase的输出:

D:\GitHub\AwesomeProject>git rebase master
First, rewinding head to replay your work on top of it...
Applying: added getstatus call
Using index info to reconstruct a base tree...
M       Host/Host.csproj
M       Host/packages.config
M       Trees/Trees.csproj
M       Trees/packages.config
M       UnitTests/UnitTests.csproj
<stdin>:1229: trailing whitespace.
  <!-- To modify your build process, add your task inside one of the targets bel
ow and uncomment it.
warning: 1 line adds whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging …
Run Code Online (Sandbox Code Playgroud)

.net git csproj git-rebase

14
推荐指数
1
解决办法
6558
查看次数

如何根据编译符号有条件地引用DLL?

Visual Studio 2013.

我有一个外部DLL,我在csproj文件中引用如下:

  <ItemGroup>
    <Reference Include="NameOfDll">
      <HintPath>Path\To\Dll\NameOfDll.dll</HintPath>
    </Reference>
Run Code Online (Sandbox Code Playgroud)

我希望这个引用在编译器符号存在时起作用,而在编译器符号不存在时不起作用.(为了解决下面的第一条评论,假设编译器符号被称为Fred.)

这个问题[ 条件参考 ]让我觉得我可以在上面显示的Reference元素中添加一个名为Condition的属性,但我无法确定哪个值赋予该属性以实现我想要的效果.

我很高兴能在VS UI中找到一种方法,但我会采取任何方法.

c# compiler-directives csproj visual-studio-2013

14
推荐指数
1
解决办法
4557
查看次数

在预编译项目/库的其余部分时动态编译App_Code中的类

ASP.NET具有特定的应用程序文件夹,例如App_Code:

包含要作为应用程序的一部分进行编译的共享类和业务对象(例如,.. cs和.vb文件)的源代码.在动态编译的Web站点项目中,ASP.NET会根据对应用程序的初始请求编译App_Code文件夹中的代码.检测到任何更改后,将重新编译此文件夹中的项目.

问题是,我正在构建一个Web应用程序,而不是一个动态编译的Web站点.但是我希望能够直接在C#中存储配置值,而不是通过XML提供服务,并且必须在读取Application_Start和存储期间读入HttpContext.Current.Application

所以我有以下代码/App_Code/Globals.cs:

namespace AppName.Globals
{
    public static class Messages
    {
        public const string CodeNotFound = "The entered code was not found";
    }
}
Run Code Online (Sandbox Code Playgroud)

这可能是应用程序中的任何位置,如下所示:

string msg = AppName.Globals.Messages.CodeNotFound;
Run Code Online (Sandbox Code Playgroud)

目标是能够将任何文字存储在可以更新的可配置区域中,而无需重新编译整个应用程序.

我可以.cs通过将其构建操作设置为编译来使用该文件,但这样做会App_Code/Globals.cs从我的输出中删除.

:有没有办法识别项目的某些部分,这些部分应该动态编译,同时允许项目的其余部分进行预编译?


  • 如果我将构建操作设置为content- .cs文件将被复制到该bin文件夹并在运行时编译.但是,在这种情况下,它在设计时不可用.
  • 如果我将构建操作设置为compile- 我可以在设计/运行时期间访问与任何其他编译类相同的对象,但在发布时它将被删除/ App_Code文件夹.我仍然可以将它放在输出目录中Copy Always,但是已编译的类似乎优先,所以我不能在不重新部署整个应用程序的情况下推送配置更改.

App_Code内容与编译

c# asp.net asp.net-mvc csproj asp.net-mvc-5

14
推荐指数
1
解决办法
2332
查看次数

在Visual Studio(2008)中有没有办法在另一个自定义文件上有自定义依赖文件?

而不是*.cs代码后面或旁边我想有一个*.js文件.我正在开发一个MVC应用程序,不需要旁边的代码,因为我有控制器,但在某些情况下,旁边有一个JavaScript代码或某种方式将文件与它正在使用的页面相关联是很好的.我想我可以用类似的方式命名它们,但我想在可能的情况下显示关联,所以毫无疑问该文件的用途.

通常我正在谈论的是在你的Global.asax文件下的Visual Studio中你将在左边有一个加号:

+ Global.asax
Run Code Online (Sandbox Code Playgroud)

一旦你展开它你就会得到

- Global.asax
    Global.asax.cs
Run Code Online (Sandbox Code Playgroud)

我想要发生同样的事情:

+ Home.spark

- Home.spark
    Home.spark.js
Run Code Online (Sandbox Code Playgroud)

更新:

我现有的csproj文件有一个指向实际文件的路径,不确定是否会将其搞砸.我现在有:

<ItemGroup>
    <Content Include="Views\User\Profile.spark.js">
      <DependentUpon>Views\User\Profile.spark</DependentUpon>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <Content Include="Views\User\Profile.spark" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

它只是显示彼此之外的文件.

csproj visual-studio-2008 visual-studio

13
推荐指数
2
解决办法
3998
查看次数

在csproj文件中使用的AppDesignerFolder是什么?

我很困惑在csproj文件中使用了什么AppDesignerFolder元素.

MSDN上似乎几乎没有文档,我发现的最有见地的答案并不是很令人满意.

所以我的问题是,这个属性到底控制了什么......?

.net csproj

13
推荐指数
1
解决办法
1870
查看次数

csproj文件中可重用的PropertyGroup元素

我需要在~15个项目中设置一系列属性.有没有办法将这些属性放在一个文件中,并让所有项目文件使用某种导入指令引用一个文件,而不是复制每个项目文件中的属性?

编辑:澄清一下,我在谈论<PropertyGroup>csproj文件中的元素.所有项目都需要相同的一系列<PropertyGroup>设置.这些元素设置类似DebugSymbols或的属性DefineDebug,不用于引用源文件.

c# csproj visual-studio-2010

13
推荐指数
2
解决办法
4735
查看次数