最近很多小伙伴都在问从Linux远程开发VisualC应用程序和linux远程编程这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展asp.net-mvc-4–如何从远程计算机调试V
最近很多小伙伴都在问从Linux远程开发Visual C应用程序和linux远程编程这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展asp.net-mvc-4 – 如何从远程计算机调试Visual Studio 2012中的Asp.Net Mvc应用程序、c# – Visual Studio SUO文件打破应用程序、c# – “此应用程序只能在应用程序容器的上下文中运行.” – Visual Studio 2015开发新功能、c#工程师用Visual Studio开发dapp应用程序等相关知识,下面开始了哦!
本文目录一览:- 从Linux远程开发Visual C应用程序(linux远程编程)
- asp.net-mvc-4 – 如何从远程计算机调试Visual Studio 2012中的Asp.Net Mvc应用程序
- c# – Visual Studio SUO文件打破应用程序
- c# – “此应用程序只能在应用程序容器的上下文中运行.” – Visual Studio 2015开发新功能
- c#工程师用Visual Studio开发dapp应用程序
从Linux远程开发Visual C应用程序(linux远程编程)
但是,另一种方式呢?我需要在Windows上构建和调试我的Visual C应用程序,但我想在Linux系统上工作.
>由于MSVC特定的库,通过MinGW交叉编译不起作用
> Windows上的Ubuntu是一个良好的开端,但我想在一个真正的Linux系统上工作
> RDP / VNC或类似的东西也没有帮助,因为我再次在Windows上工作
>虚拟机也是如此
也许类似于Linux上的Powershell SSH到Windows Powershell?
解决方法
如果没有关于您希望在Linux上使用的开发和调试工具的更多信息来解决您开发的应用程序类型,则很难回答这个问题.我将尝试提供一般概述并更新您添加的有关工作流程的详细信息的答案.
Cygwin,类似于MinGW’s MSYS,为Windows提供类Unix环境.最重要的是,与MinGW / MSYS不同,Cygwin包含OpenSSH服务器的实现,使我们能够通过SSH从Linux(或任何其他具有SSH客户端的设备)连接到Windows机箱.我们可以使用Cygwin的设置实用程序安装sshd包.连接后,Cygwin默认将我们放入Bash shell.有了这个功能,我们可以:
>通过SSH执行远程命令和脚本.
>使用我们最喜欢的* nix命令行文本编辑器(Vim,Emacs等)编辑文件
>使用SSHFS在本地挂载远程文件系统(如果Windows共享不可用).
>如果需要,可以转发或隧道端口.
通用外壳的可用性几乎可以实现.除了Linux脚本和Cygwin程序之外,我们还可以从Cygwin的shell环境中执行批处理文件,PowerShell脚本和本机Windows可执行文件.
例如,我们可以从SSH会话命令行run msbuild来构建我们的VC应用程序,或者我们可以配置我们在Linux中运行的本地GUI编辑器或IDE,当我们单击“构建”按钮时通过SSH执行msbuild.
我们可以使用Windows Subsystem for Linux(“WSL”,Windows上的Bash)在最新版本的Windows中设置类似的环境.我个人更喜欢Cygwin,因为它具有更高的可移植性和易于配置性. Cygwin的sshd可以作为Windows服务运行,作为一个已建立的项目,Cygwin可以很好地与Windows系统(用户帐户,文件系统,Windows API等)集成.
使用代码
我们可以根据我们的工具和命令行的舒适度从多个工作流程中进行选择:
>完全基于文本 – 通过SSH会话执行的所有工作
>在远程文件系统中安装的文件上使用本地工具
>使用本地工具并同步文件
我使用第一种方法.我是一个沉重的Vim用户,所以我通过SSH连接到Windows机器,使用Cygwin提供的工具和环境在命令行上完成我的工作.通常在Linux上找到的工具的可用性简化了许多从默认Windows控制台很难完成的任务.我们可以编写shell脚本来自动执行Visual Studio通常可以为我们执行的任务.例如,我在mstest周围写了一个包装器脚本,它读取XML测试结果并以一种易于在终端中读取的格式输出.
如果我们更喜欢使用GUI编辑器或IDE,我们可以在本地安装远程代码,这样工具就可以读取和写入文件,就好像它们是Linux机器本地文件系统的一部分一样.我们可能仍然需要使用SSH来执行构建项目所需的命令,但是许多编辑器允许我们将此命令配置为项目的“构建”操作.
有时远程文件系统太慢而无法进行有效编辑.在这些情况下,我们可以使用rsync之类的工具或编辑器的“保存时上传”功能(例如,通过SFTP)在Linux开发机器和Windows主机之间同步文件(如果可用).
调试
在我们尝试找到调试应用程序的方法之前,一切都运行良好.截至目前,在使用Visual C项目时,Visual Studio的调试器没有合理的替代品.我们可以使用MDbg调试在CLR上运行的托管C#应用程序,但是C程序不存在类似的工具.
我们可以尝试使用gdb(来自MinGW,Cygwin等)进行原生二进制文件的基本低级调试,比如读取内存地址,但调试器还不支持读取Microsoft的调试符号,因此调试体验非常有限.微软began documenting几年前的PDB格式,所以我们可能会在未来看到一些兼容性.即便如此,为Visual Studio的优秀调试工具提供令人满意的替代方案还需要很长时间.
对于调试,RDP目前是我们最好的,也许是唯一的选择.为了获得更原生的体验,我们可以使用rdesktop(或其他RDP客户端)和seamlessrdp运行Visual Studio来创建Visual Studio IDE的单窗口RDP会话,而不是与我们所使用的任何窗口管理器集成的完整桌面.在Linux上使用.
有时我们可以通过向我们的应用程序添加跟踪来为控制台或日志文件输出值,从而为简单的调试方案启动完整的Visual Studio调试会话.在许多情况下,这比启动调试器要快.
我们也可以尝试使用为Visual C工具链配置的Eclipse’s CDT debugger.这可以使我们能够使用Linux机器上的Eclipse实例执行远程调试.我从未尝试过这种方法,并且我预计当应用程序与Microsoft的库链接时可能会出现一些问题.
asp.net-mvc-4 – 如何从远程计算机调试Visual Studio 2012中的Asp.Net Mvc应用程序
我在计算机B中打开了Visual Studio 2012,并开始调试Asp.Net MVC Application,它在本地机器的浏览器中正常工作,它也在IIS上托管.但是,当我从计算机A的浏览器打开MVC应用程序时,除了debuging不起作用,即没有命中断点.
我搜索过它,并遇到了远程调试监视器,但我无法使用它.
我需要帮助.
解决方法
如果共享远程调试器文件夹,则可以在远程计算机上访问它.应该是2012年的文件夹
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Remote Debugger
在远程计算机上访问该文件夹并运行msvsmon.exe
一旦启动它将为您提供服务器名称.然后在本地计算机的VS2012中,在调试菜单中,选择attach to process.
将远程调试器提供的服务器名称输入限定符字段并附加到w3wp.exe进程
如果您的IIS服务器是localhost并且您的远程计算机连接到它:
您不需要远程调试器,只需从调试菜单附加到进程并选择w3wp.exe进程.
为了更好的衡量,here is the MSDN
c# – Visual Studio SUO文件打破应用程序
我不清楚为什么与.suo有关的任何事情都会影响程序的行为.该解决方案包含三个项目,其中两个由主应用程序引用.在测试中跟踪此问题时,我发现对这两个项目的引用有时会与clean.suo相冲突,并且必须重新建立.它们与扫描仪无关.我还必须重新启动顶级项目的调试版本配置.
有任何想法吗?我宁可不必检查遗留的.如果我可以避免它.
更新
我注意到功能遗留的.suo正在使用时,会加载额外的扫描程序驱动程序DLL(HHSO4NET.dll). VS输出窗口的更改部分如下所示.
旧版.suo输出窗口:
'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.pointofservice.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.pointofservice.ControlBase.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Simulator Service Objects\Microsoft.pointofservice.DeviceSimulators.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Example Service Objects\Microsoft.pointofservice.ExampleServiceObjects.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.pointofservice.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.pointofservice.ControlBase.dll'
清洁.suo输出窗口:
'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Simulator Service Objects\Microsoft.pointofservice.DeviceSimulators.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.pointofservice.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.pointofservice.ControlBase.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Example Service Objects\Microsoft.pointofservice.ExampleServiceObjects.dll'
更新2
我通过卸载以前安装的版本的程序(从VS部署项目的msi安装程序)来重现旧版的.suo的问题.看来,当使用legacy.suo完成构建并且不是新的时,安装程序创建的HHOS4NET.DLL的注册表引用将被选中.任何想法在哪里寻找罪魁祸首?
更新3
似乎卸载工作的应用程序是一个红色的鲱鱼.它扫描了扫描仪驱动程序所依赖的Configuration.xml文件以查看扫描仪(PnP?是对).那还是让我有一个神秘的魔法.我尝试使用简单的C#控制台应用程序枚举所连接的POS设备,并且没有工作,所以某些东西肯定与MS的POSfor.NET框架或霍尼韦尔的驱动程序相提并论.他们真的是一个POS.
为了记录,在已知的“好”中没有特殊的调试设置.我从中提取字符串,没有什么显示出来.接下来,我将尝试将其放入控制台应用程序,以查看它是否在不相关的解决方案中保留其神奇属性.
解决方法
Program Files (x86)\honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll
错误的位可能会弄乱负载路径和名称解析.你有魔术SUO中定义的任何其他路径吗?我可以复制一份解剖吗?
c# – “此应用程序只能在应用程序容器的上下文中运行.” – Visual Studio 2015开发新功能
我开发了一个我现在试图通过使用Visual Studio 2015安装向导扩展安装的应用程序.一切都在构建或(没有错误),但是当我打开应用程序时,它突出显示它只能在应用程序容器的上下文中打开.这意味着什么?任何建议将高度赞赏!
该应用程序正在使用一个sqlite数据库.这可能与依赖关系有关吗?如果是这样,我该如何解决这个问题?
更新:
# Culture = "en-US" ConvertFrom-StringData @' ###PSLOC PromptYesstring = &Yes PromptNoString = &No BundleFound = Found bundle: {0} PackageFound = Found package: {0} CertificateFound = Found certificate: {0} DependenciesFound = Found dependency package(s): GettingDeveloperLicense = Acquiring developer license... InstallingCertificate = Installing certificate... InstallingPackage = \nInstalling app... AcquireLicenseSuccessful = A developer license was successfully acquired. InstallCertificateSuccessful = The certificate was successfully installed. Success = \nSuccess: Your app was successfully installed. WarningInstallCert = \nYou are about to install a digital certificate to your computer's Trusted People certificate store. Doing so carries serIoUs security risk and should only be done if you trust the originator of this digital certificate.\n\nWhen you are done using this app,you should manually remove the associated digital certificate. Instructions for doing so can be found here: http://go.microsoft.com/fwlink/?LinkId=243053\n\nAre you sure you wish to continue?\n\n ElevateActions = \nBefore installing this app,you need to do the following: ElevateActionDevLicense = \t- Acquire a developer license ElevateActionCertificate = \t- Install the signing certificate ElevateActionsContinue = Administrator credentials are required to continue. Please accept the UAC prompt and provide your administrator password if asked. ErrorForceElevate = You must provide administrator credentials to proceed. Please run this script without the -Force parameter or from an elevated PowerShell window. ErrorForceDeveloperLicense = Acquiring a developer license requires user interaction. Please rerun the script without the -Force parameter. ErrorLaunchAdminFailed = Error: Could not start a new process as administrator. ErrorNoScriptPath = Error: You must launch this script from a file. ErrornopackageFound = Error: No package or bundle found in the script directory. Please make sure the package or bundle you want to install is placed in the same directory as this script. ErrorManyPackagesFound = Error: More than one package or bundle found in the script directory. Please make sure only the package or bundle you want to install is placed in the same directory as this script. ErrorPackageUnsigned = Error: The package or bundle is not digitally signed or its signature is corrupted. ErrorNoCertificateFound = Error: No certificate found in the script directory. Please make sure the certificate used to sign the package or bundle you are installing is placed in the same directory as this script. ErrorManyCertificatesFound = Error: More than one certificate found in the script directory. Please make sure only the certificate used to sign the package or bundle you are installing is placed in the same directory as this script. ErrorBadCertificate = Error: The file "{0}" is not a valid digital certificate. CertUtil returned with error code {1}. ErrorExpiredCertificate = Error: The developer certificate "{0}" has expired. One possible cause is the system clock isn't set to the correct date and time. If the system settings are correct,contact the app owner to re-create a package or bundle with a valid certificate. ErrorCertificateMismatch = Error: The certificate does not match the one used to sign the package or bundle. ErrorCertIsCA = Error: The certificate can't be a certificate authority. ErrorBannedKeyUsage = Error: The certificate can't have the following key usage: {0}. Key usage must be unspecified or equal to "DigitalSignature". ErrorBannedEKU = Error: The certificate can't have the following extended key usage: {0}. Only the Code Signing and Lifetime Signing EKUs are allowed. ErrorNoBasicConstraints = Error: The certificate is missing the basic constraints extension. ErrorNoCodeSigningEku = Error: The certificate is missing the extended key usage for Code Signing. ErrorInstallCertificateCancelled = Error: Installation of the certificate was cancelled. ErrorCertUtilInstallFailed = Error: Could not install the certificate. CertUtil returned with error code {0}. ErrorGetDeveloperLicenseFailed = Error: Could not acquire a developer license. For more information,see http://go.microsoft.com/fwlink/?LinkID=252740. ErrorInstallCertificateFailed = Error: Could not install the certificate. Status: {0}. For more information,see http://go.microsoft.com/fwlink/?LinkID=252740. ErrorAddPackageFailed = Error: Could not install the app. ErrorAddPackageFailedWithCert = Error: Could not install the app. To ensure security,please consider uninstalling the signing certificate until you can install the app. Instructions for doing so can be found here:\nhttp://go.microsoft.com/fwlink/?LinkId=243053
另一个更新:在PowerShell中将侧装安装脚本作为adiminstrator,现在收到以下错误消息:
包装无法注册. (HRESULT异常:0x80073CF6)
对于Windows 10开发人员Google Googled但并不是很多结果.
解决方法
不可能安装具有MSI的现代/商店/ UWP应用程序.
如果您不想(或不能)通过商店分发,那么您可以创建一个可以直接安装的包.
在VS中转到:PROJECT>商店>创建应用包…>并选择否以构建商店的包
在将应用程序安装在机器上之前,您需要启用该机器上的开发人员功能:
设置>更新&安全>对于开发者>选择:Sideload应用程序
然后运行使用该包创建的PowerShell脚本进行安装.
您对7天商店提交的评论听起来不正确.一般情况下,一般会在一个小时内提交,只有在特殊情况下才需要一天以上的时间.
c#工程师用Visual Studio开发dapp应用程序
最近区块链技术引起了我的注意。我刚开始了解它,就看到了区块链去中心化架构的巨大潜力,并且它能够简化各种现有繁琐的流程,通过各种形式的合约
。
作为一名.NET开发人员,我主要使用的是一些提供中心数据源的架构,因此区块链的去中心化概念对我来说是全新的。我很快就看到它如何提供更高的可靠性,完整性和透明化。我开始寻找可以让我开始使用熟悉的操作系统和工具进行开发dapp应用程序的信息:Windows和Visual Studio。
最初,我对以太坊区块链,智能合约和dapp应用程序提出了大量疑问。
- 所有信息都存储在哪里?
- 智能合约在哪里部署?
- Dapp(去中心化应用程序)在哪里托管?
- 如何进行测试?
- 谁能查看并调用我的合约?
尽管网上提供了大量关于区块链技术和区块链开发的资源,但它们并没有得到验证,也不是很容易理解。所以我不得不深入挖掘很多信息,包括书籍,白皮书,论坛,文章。现在我能够将典型的ASP.NET应用程序架构与Blockchain去中心化的应用程序架构进行比较:
正如你从此图中看到的,Dapp只不过是一个JavaScript,无论是智能合约还是区块链中的任何其他东西。区块链正在扮演服务器角色,除了它根本不是中心,而是复制到运行以太坊虚拟机(EVM)脚本(Geth)的所有节点(机器)的副本。
一旦我对自己的工作方式有了更清晰的了解,我就可以开始将理论付诸实践了。正如之前所说,想重用我的知识,并使用我所熟悉的工具和操作系统去开发DApps和智能合约。作为.NET开发人员,我当然正在研究使用Visual Studio。
我必须说,关于这方面的文章很少,而且大多数都已经过时了,所以这激励我做自己的研究。我发现BlockApps公司提供了Microsoft技术堆栈和以太坊区块链技术之间的联络。截至今天,你可以在Microsoft Azure中尝试Visual Studio集成区块链单个实例。
为了尝试,我需要安装Visual Studio 2015并从Visual Studio Marketplace下载Solidity扩展。
之后,就可以开始编写智能合约和DApp。
为了编译测试和部署,可以使用BLOC工具为Visual Studio项目提供对BlockApps区块链环境STRATO的访问。BlockApps提供了有关如何使用BLOC和STRATO的说明。
BLOC启动并运行后,您可以编译和部署智能合约:
部署后,将为生成一个测试页面,允许你测试智能合约:
此测试页面与您部署的智能合约是Dapp的一个示例。
作为建立自己的区块链环境的替代方案,BlockApps还可以提供在Microsoft Azure上分离STRATO环境的功能。它称为STRATO Blockchain Individual Instance
,它将由一个节点组成:
Microsoft Azure订阅之上的当前估计价格范围从每月132.51 CAD到1798.11 CAD,具体取决于虚拟机配置 - 核心数,RAM数,磁盘数,磁盘大小等。
之后,您可以将Visual Studio项目指向新的Azure实例,然后就可以开始在那里部署智能合约:
如果你已经启动并运行本地BLOC,则可以将config.yaml更改为指向Azure实例。
如你所见,Visual Studio集成适用于DApps开发。 即使需要额外的工具来设置开发环境,现在微软将使用新的针对以太坊区块链产品。 是时候跳上板,成为微软平台的早期采用者了。
如果你想马上使用c#开发以太坊dapp,可以学习下面的教程:
C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和事件等。
这里是原文
今天的关于从Linux远程开发Visual C应用程序和linux远程编程的分享已经结束,谢谢您的关注,如果想了解更多关于asp.net-mvc-4 – 如何从远程计算机调试Visual Studio 2012中的Asp.Net Mvc应用程序、c# – Visual Studio SUO文件打破应用程序、c# – “此应用程序只能在应用程序容器的上下文中运行.” – Visual Studio 2015开发新功能、c#工程师用Visual Studio开发dapp应用程序的相关知识,请在本站进行查询。
本文标签: