小编Wil*_*ins的帖子

在.NET项目中复制本机DLL的最简洁方法

我有一个引用托管C++项目的C#GUI应用程序,它需要7个本机C++ DLL.我正在寻找将这7个DLL复制到最终项目输出的最干净的方法.

什么工作
将所有DLL添加到C#应用程序,指定:

构建操作=="内容"
复制到输出目录==始终复制"

在某些情况下,这将使项目的基本文件夹成为混乱的DLL,所有这些都是引用项目的要求,而不是项目本身.

什么行不通

  • 使用上述设置将这些DLL添加到名为"Required DLLs"的文件夹中.它将其复制到输出中具有相同名称的文件夹,导致它们位于不正确的位置.我看不到指定输出目录的方法.
  • 嵌入式资源:在C#P/Invoke中,您可以将您引用的DLL添加为嵌入式资源,并将DLL嵌入到最终库中.我在Managed C++中没有看到这种可能性,我甚至不确定它是否适用于引用链.
  • 将DLL作为内容添加到托管C++项目中.文件不会被复制到输出目录.

在这种情况下,最佳解决方案是什么?我希望托管C++项目能够在可能的情况下处理它自己的DLL要求,并且最好以不会阻止项目跨多个应用程序使用的方式.

如果有一个干净的项目,最好是在项目的子文件夹中插入我的所有代码文件,并在根目录下使用DLL来使第一个解决方案有效吗?

解决方案:
使用Joseph的post-build建议,以下命令可以使用"Required DLLs"文件夹.

xcopy"$(ProjectDir)必需的DLL*.*""$(TargetDir)"/ Q/Y.

/ Q隐藏输出中的单个文件,/ Y禁止覆盖提示.

c# msbuild dll managed-c++

6
推荐指数
1
解决办法
2686
查看次数

使用MVVM的动态视图动画

我一直试图弄清楚如何在ViewModel中的属性更新时有效地触发视图中的动画,其中动画取决于所述属性的值.

我在一个简单的应用程序中使用单个View和ViewModel重新创建了我的问题.这里的目标是使用ColorAnimation转换矩形的颜色变化.作为参考,我一直在使用Josh Smith 的MVVM Foundation软件包.

示例项目可以在这里下载.

总而言之,我想在Color属性更改时为View中的颜色过渡设置动画.

MainWindow.xaml

<Window x:Class="MVVM.ColorAnimation.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ColorAnimation="clr-namespace:MVVM.ColorAnimation" Title="MainWindow" Height="350" Width="525">
    <Window.DataContext>
        <ColorAnimation:MainWindowViewModel />
    </Window.DataContext>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="40" />
        </Grid.RowDefinitions>

        <Rectangle Margin="10">
            <Rectangle.Fill>
                <SolidColorBrush Color="{Binding Color}"/>
            </Rectangle.Fill>
        </Rectangle>

        <StackPanel Orientation="Horizontal" Grid.Row="1">
            <Button Command="{Binding BlueCommand}" Width="100">Blue</Button>
            <Button Command="{Binding GreenCommand}" Width="100">Green</Button>
        </StackPanel>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

MainWindowViewModel.cs

namespace MVVM.ColorAnimation
{
    using System.Windows.Input;
    using System.Windows.Media;

    using MVVM;

    public class MainWindowViewModel : ObservableObject
    {
        private ICommand blueCommand;
        private ICommand greenCommand;

        public ICommand BlueCommand
        { …
Run Code Online (Sandbox Code Playgroud)

c# animation xaml mvvm coloranimation

6
推荐指数
1
解决办法
3237
查看次数

当内容为可变高度时,列表框滚动条缩略图会更改大小

我有一个ListBox,其中显示了许多对象,每个对象可以是一个可变高度,基于每个对象具有的值的数量.请参阅我之前回答的问题.

许多对象是5行高,而其他对象是1. ListBox中的滚动条看起来不像这样,可能是由于虚拟化.滚动时,滚动条上的滑块将根据当前时刻实际装入框中的项目数量来更改其大小.这使得拇指有时非常大,而在其他时候非常小.

由于此ListBox也包含在TabControl中,因此当您从一个选项卡切换到另一个选项卡时,ListBox通常会在您返回时滚动到其他部分.

有任何想法如何解决这样的问题?

附加信息: 禁用虚拟化确实可以解决滚动问题,但代价是初始显示速度较慢.但是,使用内部内容调整ListBox的大小会导致在水平调整大小时出现一些重大延迟(垂直很好),我假设这是由于我的模板宽度发生变化并需要在每个元素上重绘:

<DataTemplate DataType="{x:Type xmlset:Variable}">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="170"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Border BorderThickness="1,0,0,1" BorderBrush="Black">
            <TextBlock Margin="2,2,0,2"  Text="{Binding Path=Identifier.Name, Mode=OneWay}"/>
        </Border>
        <ItemsControl IsTabStop="False" Grid.Column="1" ItemsSource="{Binding Path=Values, Mode=OneWay}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="120"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>

                        <Border Grid.Column="0" BorderThickness="1,0,0,1" BorderBrush="Black">
                            <TextBlock Margin="2,2,0,2" Text="{Binding Path=Optimization, Mode=OneWay}"/>
                        </Border>
                        <Border Grid.Column="1" Width="Auto" BorderThickness="1,0,1,1" BorderBrush="Black">
                            <TextBox Margin="0,2,0,2" BorderThickness="0" Text="{Binding Path=Value}" TextChanged="TextBox_TextChanged"/>
                        </Border>
                    </Grid>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

这是在字段边缘周围绘制边框以进行可视分组,其中val将拉伸到内容大小.列表框还具有Horizo​​ntalContentAlignmment = Stretch以确保这看起来正确.

-------------------
- var …

c# wpf listbox itemscontrol

5
推荐指数
2
解决办法
4269
查看次数

将django.contrib.auth.models.User密码,sha1反转为可读字符串

from django.contrib.auth.models import User
u = User.objects.get(username='test')
user.password
u'sha1$c6755$66fc32b05c2be8acc9f75eac3d87d3a88f513802

是否可以撤消此密码加密?

encryption django

5
推荐指数
3
解决办法
7049
查看次数

在DB中存储图像 - 联网桌面应用程序

相关: 在DB中存储图像 - 是还是不?

在阅读上述问题后,似乎使用数据库进行图像存储的首选方法是仅在数据库中存储文件路径.但是,大多数答案似乎都集中在Web服务器上.

就我而言,我正在开发一个桌面应用程序,它将在Intranet中的多台计算机上使用.专用服务器将托管数据库,其中包含与在各种设备上执行测试相关的信息.

图像需要以某种方式存储在服务器上.在这种情况下,将图像存储在数据库中是否是正确的方法,甚至是唯一的方法?

优点:

  • 备份仅限于数据库.
  • 无需打开服务器的文件系统到网络.
  • 服务器信息访问的单一协议.
  • 受保护的文件访问.(用户无法进入并删除所有图像)

缺点

  • 如果图像太多,将来会出现性能问题.

编辑:如标签中所述,应用程序是用C#/ .NET编写的.如果在这种情况下将图像写入文件系统是一个选项,我可以使用一些帮助来理解这是如何完成的.

编辑2:正如下面的评论中详细阐述的那样,现在我假设一个MySQL数据库,尽管SQL Server 2008的FileStream功能可能会改变它.

同样在我的情况下,图像将经常添加,并且在此之后可以被认为是只读的,因为它们永远不应该被更改,并且将在需要时被读出.图像可能很小(每个约70k),我也在考虑服务器上的其他二进制格式存储,每个文件大约20k,我可能会使用相同的存储和检索方法.

.net c# database image

5
推荐指数
2
解决办法
1465
查看次数

我无法让ruby开发工具包适用于Windows XP

所以,我不能为我的生活让这个工作正常.我的最终目标是安装和运行dbd-odbc gem,并且从我读过的多个内容中,我需要在dbd-odbc gem旁边安装ruby 的ODBC绑定.好吧,我可以安装dbd-odbc gem就好了,但是当涉及到尝试安装绑定时,就像这样:

Building native extensions.  This could take a while...
ERROR:  Error installing ruby-odbc-0.9998.gem:
        ERROR: Failed to build gem native extension.`

c:/tools/ruby/ruby-1.9.1-p376/bin/ruby.exe extconf.rb
checking for version.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --srcdir=.
        --curdir
        --ruby=c:/tools/ruby/ruby-1.9.1-p376/bin/ruby
        --with-odbc-dir
        --without-odbc-dir
        --with-odbc-include
        --without-odbc-include=${odbc-dir}/include
        --with-odbc-lib …

ruby installation windows-xp development-environment rubygems

5
推荐指数
1
解决办法
8273
查看次数

如何选择带有TOP 1信息的DISTINCT信息和来自前1个信息的订单

我有2个表,看起来像:

CustomerInfo(CustomterID, CustomerName)
CustomerReviews(ReviewID, CustomerID, Review, Score)
Run Code Online (Sandbox Code Playgroud)

我想搜索一个字符串的评论并返回CustomerInfo.CustomerIDCustomerInfo.CustomerName.不过,我只想展现独特CustomerIDCustomerName具有只是他们的一个一起CustomerReviews.ReviewsCustomerReviews.Score.我也想订购CustomerReviews.Score.

我无法弄清楚如何做到这一点,因为客户可以留下多个评论,但我只想要一个评分最高的客户列表.

有任何想法吗?

sql-server select distinct greatest-n-per-group

5
推荐指数
1
解决办法
6491
查看次数

C#列表插入foreach

我有以下循环:

List<Reminders> reminds = new List<Reminders>();
//...
foreach (Reminders remind in reminds)
{
    //....
    reminds.Insert(id, new Reminders() { Title = remind.Title, Content = remind.Content, Checked = true });
}
Run Code Online (Sandbox Code Playgroud)

但是,foreach循环中会发生错误。

foreach (Reminders remind in reminds)
Run Code Online (Sandbox Code Playgroud)

如果我删除该reminds.Insert语句,该错误将不再发生。我正在尝试更新循环内的某些整体foreach。是什么导致错误?

c# foreach insert

5
推荐指数
2
解决办法
9152
查看次数

Grunt Concat任务:如何排除某些文件?

我在grunt中有以下任务:

concat: {
       js: {
       src: ['app/**/**/*.js',
             '!app/**/**/*test.js'],
         dest: 'app/scripts.js'
       }
}
Run Code Online (Sandbox Code Playgroud)

但它不排除完成的js文件test.我应该使用什么模式来排除这些文件?

concat angularjs gruntjs

5
推荐指数
1
解决办法
1459
查看次数

如何从highchart.js中的饼图中删除空格?

顶部有空白的蓝色圆圈,用红色圈出.

我想删除上面用红色圈出的白色空间.我在jsFiddle中使用下面的代码:

$(function () {

$('#container').highcharts({
    chart: {
        plotBackgroundColor: null,
        plotBorderWidth: null,
        plotShadow: false,borderRadius: 0,
                    borderWidth:0,
    },
    title: {
        text: 'Browser market shares at a specific website, 2010'
    },
     tooltip: false,
    plotOptions: {
        pie: {
            allowPointSelect: true,
            cursor: 'pointer',
            dataLabels: {
                enabled: true,
                color: '#000000',
                connectorColor: '#000000',
                format: '<b>{point.name}</b>: {point.percentage:.1f} %'
            }
        }
    },
    series: [{
        type: 'pie',
        name: 'Browser share',
         size: '115%',
         innerSize: '110%',
        data: [
            ['Firefox',   45.0]

        ]
    },{type: 'pie',
        name: 'Browser share',
         size: '100%',
                        innerSize: '98%',
        data: [ …
Run Code Online (Sandbox Code Playgroud)

javascript jquery highcharts

4
推荐指数
1
解决办法
3467
查看次数