add_library 无法在 CMake 中添加 CSharp 源文件?

2023-11-30

我正在尝试从一组构建 CSharp DLL.cs文件。我用的是add_library()函数添加源文件(.cs文件)。但它给出了诸如“add_library for library libname without any source files”之类的警告。请提供一个解决方案以使其正常工作。

提前致谢。

CMakeLists.txt 是:

cmake_minimum_required(VERSION 2.8)

project(MyAddIn)

AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/ MyAddIn_SOURCES)     


SET_SOURCE_FILES_PROPERTIES(${MyAddIn_SOURCES} PROPERTIES LANGUAGE CSharp)

ADD_LIBRARY(AddInTrg SHARED ${MyAddIn_SOURCES})

SET_TARGET_PROPERTIES(AddInTrg PROPERTIES 
                               LINKER_LANGUAGE CSharp
                               RUNTIME_OUTPUT_DIRECTORY bin
                               RUNTIME_OUTPUT_DIRECTORY_DEBUG bin
                               RUNTIME_OUTPUT_NAME MyAddIn_Bin
                               ARCHIVE_OUTPUT_DIRECTORY lib
                               ARCHIVE_OUTPUT_DIRECTORY_DEBUG lib
                               OUTPUT_NAME MyAddIn_Bin)

add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/MyAddIn_Bin.dll
                   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In
                   COMMAND C:/WINDOWS/Microsoft.NET/Framework/v3.5/csc.exe
                   ARGS 
                   -target:library                 
                   -out ${CMAKE_CURRENT_BINARY_DIR}/bin/MyAddIn_Bin.dll
                   "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/Ribbon.cs" "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/ThisAddIn.cs" "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/Ribbon.xml"
                   COMMENT "-- Generating AddIn Dll")

As of CMake 3.8,CMake 现在完全支持 C# 作为语言。您现在应该能够使用如下所示的内容创建 C# 程序集目标 (DLL):

# Define the DLL target, including all relevant project files.
add_library(AddInTrg SHARED ${MyAddIn_SOURCES})

# Set the .NET Framework version for the target.
set_property(TARGET AddInTrg PROPERTY VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.6.1")
# Set the C# language version (defaults to 3.0 if not set).
set(CMAKE_CSharp_FLAGS "/langversion:6")
# Add in some .NET reference libraries.
set_property(TARGET AddInTrg PROPERTY VS_DOTNET_REFERENCES
    "Microsoft.CSharp"
    "System"
    "System.Core"
    "System.Data"
    "System.Deployment"
    "System.Drawing"
    "System.Net.Http"
    "System.Xml"
)

您还可以使用 CMake 指定 .NET 和 C# 版本,并提取任何必需的 .NET 引用。

注意:此支持仅涵盖 Visual Studio 2010 及更高版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

add_library 无法在 CMake 中添加 CSharp 源文件? 的相关文章

  • 如何通知父线程所有子线程都已终止?

    我有一个控制台应用程序正在移植到 WPF 该应用程序有 3 个工作线程 在将一些输出结果打印到屏幕上之前 这些线程都连接到主线程 我的理解是 如果我尝试在 WPF 应用程序中执行相同的操作 GUI 将被阻止并且不会响应用户 那么如何通知父线
  • 使用 CMake 在 iOS 中使用另一个 STATIC 库创建一个 STATIC 库

    我有一个 libfooi a 的集合 libfoo1 a libfoo2 a libfoo3 a 使用工厂 带有静态代码 有一个公共接口来创建 C 对象 使用 CMake 我选择其中之一 并创建一个链接它并添加所有内容的 libfooWra
  • 当我使用 SetWindowsHookEx WH_KEYBOARD_LL 交换按键时,为什么我的程序会陷入过多键盘输入事件的循环?

    I am trying to write a program for Windows system that swaps the A and B keys i e when I press the A key B gets typed an
  • 增量决策树 C++ 实现

    有谁知道决策树分类器的增量实现吗 这样 当您将新实例添加到训练集中时 它可以根据现有决策树分类器以低计算量并尽可能快地生成最佳决策树分类器 换句话说 我有一个最优决策树分类器集A 其中命名为T 1 现在我想添加实例X to set A并找到
  • 在目标 VS 安装时,VSIX 扩展内部使用的 WPF-Log4Net 未输出日志

    当 Log4net 在 VSIX 扩展中使用并安装在另一个目标 VS 上时 它不会记录日志 我有一个 WPF 解决方案 我下载了 log4net dll 添加了 log4net config 并将 复制到输出目录 值设置为 始终复制 log
  • std::tr1::function 和 std::tr1::bind

    我在使用时遇到问题veryC 类中的复杂 C 函数 重写 C 函数是not一个选项 C函数 typedef void integrand unsigned ndim const double x void fdata unsigned fd
  • 通过用于 Symbol 条码扫描仪 DS4208 的 SNAPI.dll API 捕获图像

    我想通过 SNAPI API 从 Symbol 目前为 Zebra 条形码扫描仪 DS4208 型号 我们还使用 Zebra 的另一个但兼容的型号 捕获图像 条形码捕获 识别效果很好 但看起来像SnapiDLL SNAPI SnapShot
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • 多维数组和指向指针的指针

    创建多维数组时char a 10 10 根据我的书 它说你必须使用类似于char a 10 将数组传递给函数 为什么必须这样指定长度 您不是只是将双指针传递给 with 并且该双指针不是已经指向分配的内存吗 那么为什么参数不能是char a
  • 以编程方式运行 T4 文本模板

    有没有一种方法可以通过代码以编程方式运行 T4 文本模板 我正在制作一种自定义域特定语言 我希望相关的文本模板在用户每次保存时运行 目前 这就是我在 DSL 模型中所做的事情 protected override void OnDocume
  • EF Core 一对多关系列表返回 null

    我正在尝试学习如何在 EF Core 中正确利用 DbContext 我有一个团队课程 public class Team public int ID get set public string Name get set public bo
  • 如何在Azure功能中添加razor视图文件?

    我正在创建一个应用程序 它是 azure 函数项目 我想在该项目中使用 Razor 视图 我应该在 azure 函数中使用任何模板引擎吗 得益于一些方面的进步剃刀之光项目 https github com toddams RazorLigh
  • 如何在 Visual Studio 2010 Express 中引用 system.drawing?

    我对此有点陌生 我的印象是要绘制我创建的矩形 我需要使用 system drawing graphics 问题是 我收到错误 命名空间 System 中不存在类型或命名空间名称 drawing 您是否缺少程序集引用 当我右键单击解决方案资源
  • 如何在asp.net core 6中注入IConfiguration

    web api 应用程序中不再有 Startup cs 我们以前可以注入IConfiguration进入那个Startup class public class Startup public Startup IConfiguration c
  • 将多个 Blob 输入传递到 QueueTrigger Azure 函数的最佳方法

    问题 触发后 生成 3 个 XML 文件 完成后将它们通过 ftp 传输到站点 目前的方法 我有一个 HTTP 触发器 Azure 函数 运行时将构造 3 个 XML 文件并将它们保存到 Azure 存储 Blob 容器中 由于有多个输出
  • 在Framework 4.6项目中使用.net core DLL

    我已经在 net core 2 0 中构建了一个 DLL 现在我想在使用 net 4 6 1 框架的 WinForms 项目中使用它 我可以引用该 dll 但收到 System IO FileLoadException 表示找不到 Syst
  • 使用 MVC5、Ajax、C# 和 MSSQL Server 级联 DropdownList

    我对来自 Windows 窗体和三层架构的 MVC 非常陌生 我试图找出使用从数据库填充的级联下拉列表 DDL 我使用 MS SQL Server 2012 VS 2013 目前我正在研究用户调查问卷 用户可以从 DDL 的多个答案中进行选
  • char[length]初始化并处理

    我定义了一个字符数组 char d 6 如果我在以下方面有误 请纠正我 此时没有为变量分配内存d 现在我要初始化它 d aaaaa 这种初始化之后 就不需要释放内存了 它将自动完成 我怎么知道是否char 被初始化了吗 我正在寻找类似的模式
  • “显式”关键字对返回值优化 (RVO) 有何影响?

    以下代码工作得很好 显示 RVO struct A A int cout lt lt A A n constructor A const A cout lt lt A A const A n copy constructor A foo r
  • C#:如何处理乱序 TCP 数据包?

    请有人解释一下如何处理乱序数据包 我使用原始套接字来捕获数据包 并在数据包到来时解析它们 但其中一些数据包的顺序错误 例如 ID 标志 16390 PSH ACK 16535 PSH ACK 16638 确认 16640 PSH ACK 1

随机推荐

  • 在 NSString 的情况下,对自动释放对象的周引用不会被释放

    Why temp即使对象被声明为 也不会被释放并设置为 nil week 但如果 Person 反对 它会按预期工作 做NSString对象内存生命周期的处理方式不同 如何 interface Person NSObject propert
  • mysql 按问题排序

    如果我有这样的查询 SELECT FROM table WHERE id IN 3 6 1 8 9 这个 ids 数组是在 php 中动态构建的 并且顺序对我来说很重要 my array array 3 6 1 8 9 如何按元素在数组中出
  • C# 中的全局 Keyhook

    我想制作一个新的应用程序 我可以通过外部 GUI 的按键进行控制 如果按下该键 首先应该有一个文本字段发生变化 最后我想让计时器在按键时启动 我用谷歌搜索并访问了 Stack Overflow 但没有找到任何可以真正帮助我解决问题的方法 我
  • d3 径向条形图中的标签放置

    在我的 d3 径向图表中 我试图将标签文本置于段弧上方 而不是保留在外圆之外 Fiddle var width 360 height 300 barHeight height 2 40 var formatNumber d3 format
  • 带样条+日期时间对象的平滑线不起作用

    我一直在努力让情节更加流畅 就像完成的一样here 但我的 X 是与 linspace 不兼容的日期时间对象 我将 X 转换为 matplotlib 日期 Xnew matplotlib dates date2num X X smooth
  • Android 上的 Google 收藏集

    有人在 Android 上使用过 Multimaps 吗 Guava 在 Android 上按原样运行 您遇到了什么问题 使用已发布的 JAR 而不是 Guava 源 与往常一样 您应该在构建过程中使用 ProGuard 来缩小最终二进制文
  • 我们可以将 SQL 从 S3 存储桶导入到 AWS ec2(实例)吗?

    我正在尝试将 SQL 文件从 S3 存储桶导入到 EC2 实例 SQL 文件是可公开访问的 并且在实例中安装的 mysql 客户端的帮助下 我正在执行以下命令 mysql gt source https s3 ap southeast 1
  • 有没有办法给一个节点添加多个标签?

    假设我正在创建一个关于食物的数据库 在其中我想添加木豆 它既是咖喱又是扁豆 SELECT FROM cypher menu CREATE LENTIL CURRY name Dal AS dal agtype 2023 02 20 06 4
  • TestNG错误-java.lang.NoSuchMethodError: org.testng.TestRunner.addListener(Ljava/lang/Object;)V

    我安装的testNG版本是 6 9 11 我的pom xml有 6 14 3 Eclipse版本neon 4 6 3 当我通过 TestNG 运行课程时 出现以下错误 有人可以帮我解决这个问题吗 java lang NoSuchMethod
  • 如果任何函数并行失败,则停止 bash

    我有一个 BASH 可以在我的 BASH 中并行运行 3 个函数 functionA my command echo ERROR gt gt LOG FILE exit 1 functionB my command echo ERROR g
  • 如何自定义@FeignClient Expander来转换参数?

    Feign默认扩展器转换参数 final class ToStringExpander implements Expander Override public String expand Object value return value
  • 如何在 Picturebox C# 中添加标签透明度?

    我在其中创建一个程序可以添加标签和图片框 所有控件都必须是面板的子控件 我使用这样的代码 panel2 Controls Add picturebox1 panel2 Controls Add label1 是的 问题是我想要在图片框上贴上
  • java控制台输入

    通过控制台输入的任何数据类型 就像我使用 BufferedReader 类所做的那样 是 String 之后我们将其转换为所需的数据类型 如 Inter parseInt 表示整数 但是在 C 中 我们可以接受任何输入原始数据类型 而在ja
  • std::auto_ptr 到 std::unique_ptr

    随着新标准的到来 以及某些编译器中已经可用的部分 新类型std unique ptr应该是替代品std auto ptr 它们的用法是否完全重叠 这样我可以在我的代码上进行全局查找 替换 不是我会这样做 但如果我这样做 或者我应该意识到一些
  • 搜索短信收件箱

    如何搜索短信收件箱并显示来自特殊号码的最新消息 例如 搜索 999999999 并显示从此号码收到的最后一条消息 有办法做到这一点吗 我已使用此代码返回我的收件箱中的消息数 TextView view Override public voi
  • System.Object 类和结构之间的关系

    我知道我的问题看起来很愚蠢 但我很困惑 如果有人为我澄清这一点 我将不胜感激 我知道结构 例如Int32 是值类型 在堆栈上实例化 而类是引用类型 在堆上实例化 我还知道所有结构都派生自 System Object 类型 它是一个类 我想知
  • 尽管已颁发有效令牌,但仍从 Dynamics 365 返回 401

    我正在尝试重写当前使用 JavaScript 连接到 Dynamics 365 的客户端应用程序 let URL https
  • Ember 2.0 中的 makeBoundHelper 替代方案

    到目前为止 我一直在使用绑定助手在我的博客文章中注入 Google DFP 广告 由于所有 Handlebars API 已在 Ember 2 0 中删除从 Ember 2 0 开始我可以使用什么 import Ember from emb
  • Android 加速度计全系列

    我目前正在处理 Android 传感器 API 和加速计数据 虽然内部组件应该支持高加速 甚至 16g 但我尝试了一些最近的智能手机 发现暴露数据的最大范围通常是 2g 例如Nexus 5 有时是 4g 例如Nexus 4 有没有办法设置传
  • add_library 无法在 CMake 中添加 CSharp 源文件?

    我正在尝试从一组构建 CSharp DLL cs文件 我用的是add library 函数添加源文件 cs文件 但它给出了诸如 add library for library libname without any source files