Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#编译器:仅预处理_C#_C Preprocessor - Fatal编程技术网

C#编译器:仅预处理

C#编译器:仅预处理,c#,c-preprocessor,C#,C Preprocessor,我计划将(xUnit的一个小型BDD扩展,可容纳 < P>你可以一直通过C++代码预处理器通过Cl> Cl/E/P运行,并且你已经保证它安装在(几乎)每个VS安装上。这是一个非常古老的学校伎俩:) 你可以一直通过C++代码预处理器通过Cl> Cl/E/P,并且已经保证它几乎安装在每个VS安装上。这是一个非常古老的学校伎俩:) 为什么不将.cs文件添加到需要的项目中呢 如果要从公共位置引用文件,则可以手动编辑.csproj文件以使用绝对(或相对)路径,而不是使用项目目录中的路径。为什么不将.cs文

我计划将(xUnit的一个小型BDD扩展,可容纳<600行)作为单个.cs文件分发,而不是完整的dll

SubSec具有Silverlight和.NET风格,通过CSC预处理器从单个主文件构建SubSec的发布版本是理想的。所谓“发布版本”,我指的是创建单个cs文件(不会有二进制版本)。版本控制将由NuGet处理


我知道C#编译器没有单独的预处理器(而是集成到管道中)。是否有其他的编译器/工具,我可以使用而不是CSC?< /P> < P>你可以一直通过C++代码预处理器通过Cl> Cl/E/P<代码>运行,并且你已经保证它安装在(几乎)每个VS安装上。这是一个非常古老的学校伎俩:)


<>你可以一直通过C++代码预处理器通过Cl> Cl/E/P<代码>,并且已经保证它几乎安装在每个VS安装上。这是一个非常古老的学校伎俩:)


为什么不将.cs文件添加到需要的项目中呢


如果要从公共位置引用文件,则可以手动编辑.csproj文件以使用绝对(或相对)路径,而不是使用项目目录中的路径。

为什么不将.cs文件添加到需要的项目中


如果要从公共位置引用文件,则可以手动编辑.csproj文件以使用绝对(或相对)路径,而不是使用项目目录中的文件。

您的
工具/install.ps1
可以在“安装”C#文件时对其执行它想要的操作,以便它可以在包含过程中对其进行处理-这可以通过使用多行字符串中的嵌入
$(x)
$(表达式)
项进行有条件扩展(可能通过使用一组
函数
扩展为C#code as
[string]
s,形成表达式的组件),即模板化,或者您可以通过一些
-replace
管道将
获取内容
。(你可能也会看到人们使用T4的例子,但如果NuGet是送货车,那么不使用它就太可惜了。如果你喜欢冒险,你也可以在那里做一个真正的解析器(或者只是一个穷人的解析器)

另一种方法是使用
partial
类,让
install.ps1
插槽位于主customiser文件旁边的右侧customiser文件中


或者您还没有尽力使用。

您的
工具/install.ps1
可以在“安装”C文件时对其执行它想要的操作,以便它可以在包含过程中对其进行处理-这可以通过使用多行字符串中的嵌入
$(x)
$(表达式)
项进行有条件扩展(可能通过使用一组
函数
扩展为C#code as
[string]
s,形成表达式的组件),即模板化,或者您可以通过一些
-replace
管道将
获取内容
。(你可能也会看到人们使用T4的例子,但如果NuGet是送货车,那么不使用它就太可惜了。如果你喜欢冒险,你也可以在那里做一个真正的解析器(或者只是一个穷人的解析器)

另一种方法是使用
partial
类,让
install.ps1
插槽位于主customiser文件旁边的右侧customiser文件中


或者你只是没有尽力使用。

对不起,也许我不够清楚。所谓“发布版本”,我指的是创建单个cs文件(没有二进制版本)。版本控制将由NuGet处理。对不起,也许我不够清楚。所谓“发布版本”,我指的是创建单个cs文件(不会有二进制版本)。版本控制将由NuGet处理。听起来是个好主意,我会试试。我不想做包含(虽然它会打开一些选项…),只想创建一个没有SILVERLIGHT条件的cs文件(减少膨胀,让我接近神奇的500行).1不错的破解,但是很多人试图保存几百兆,所以这不是一个好主意(我知道你知道),我会试试。我不想做包含(虽然它打开了一些选项…),只想创建一个没有SILVERLIGHT条件的cs文件(减少浮肿,让我接近魔法500线)。+1很好的破解,但很多人试图挽救几百兆,所以这不是一个很好的假设(我知道你知道)
// SubSpec.cs
// Bla bla license stuff

#include "File1.cs"  // This gets read by the C++ preprocessor
#include "File2.cs"  // and expanded out
#include "File3.cs"